Make left-click on tempo/meter in main clock edit current tempo/meter
This commit is contained in:
parent
760e00b028
commit
99e15d9402
|
@ -333,7 +333,7 @@ AudioClock::render (cairo_t* cr, cairo_rectangle_t*)
|
|||
|
||||
if (mode_based_info_ratio != 1.0) {
|
||||
|
||||
double left_rect_width = round (((get_width() - separator_height) * mode_based_info_ratio) + 0.5);
|
||||
double left_rect_width = get_left_rect_width();
|
||||
|
||||
if (_need_bg) {
|
||||
if (corner_radius) {
|
||||
|
|
|
@ -101,6 +101,17 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr
|
|||
virtual void build_ops_menu ();
|
||||
Gtk::Menu *ops_menu;
|
||||
|
||||
bool on_button_press_event (GdkEventButton *ev);
|
||||
bool on_button_release_event(GdkEventButton *ev);
|
||||
bool is_lower_layout_click(int y) const {
|
||||
return y > upper_height + separator_height;
|
||||
}
|
||||
bool is_right_layout_click(int x) const {
|
||||
return x > x_leading_padding + get_left_rect_width() + separator_height;
|
||||
}
|
||||
double get_left_rect_width() const {
|
||||
return round (((get_width() - separator_height) * mode_based_info_ratio) + 0.5);
|
||||
}
|
||||
private:
|
||||
Mode _mode;
|
||||
std::string _name;
|
||||
|
@ -186,8 +197,6 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr
|
|||
bool on_key_press_event (GdkEventKey *);
|
||||
bool on_key_release_event (GdkEventKey *);
|
||||
bool on_scroll_event (GdkEventScroll *ev);
|
||||
bool on_button_press_event (GdkEventButton *ev);
|
||||
bool on_button_release_event(GdkEventButton *ev);
|
||||
void on_style_changed (const Glib::RefPtr<Gtk::Style>&);
|
||||
void on_size_request (Gtk::Requisition* req);
|
||||
bool on_motion_notify_event (GdkEventMotion *ev);
|
||||
|
|
|
@ -116,3 +116,24 @@ MainClock::insert_new_meter ()
|
|||
PublicEditor::instance().mouse_add_new_meter_event (absolute_time ());
|
||||
}
|
||||
|
||||
bool
|
||||
MainClock::on_button_press_event (GdkEventButton *ev)
|
||||
{
|
||||
if (ev->button == 1) {
|
||||
if (mode() == BBT) {
|
||||
if (is_lower_layout_click(ev->y)) {
|
||||
if (is_right_layout_click(ev->x)) {
|
||||
// meter on the right
|
||||
edit_current_meter();
|
||||
} else {
|
||||
// tempo on the left
|
||||
edit_current_tempo();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return AudioClock::on_button_press_event (ev);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,4 +39,6 @@ private:
|
|||
void insert_new_meter ();
|
||||
framepos_t absolute_time () const;
|
||||
bool _primary;
|
||||
|
||||
bool on_button_press_event (GdkEventButton *ev);
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue