X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Faudio_clock.h;h=6b8c31d5ad39db26f66f84d84d5360c1504d8293;hb=54fd56de755a44420d906ad660b18c2d671f1057;hp=325fdbe2b277cc1c9f2431e57389364179e80780;hpb=f02db9b04e44bb41dfc143eaaf637b108bc2466f;p=ardour.git diff --git a/gtk2_ardour/audio_clock.h b/gtk2_ardour/audio_clock.h index 325fdbe2b2..6b8c31d5ad 100644 --- a/gtk2_ardour/audio_clock.h +++ b/gtk2_ardour/audio_clock.h @@ -34,6 +34,7 @@ #include "ardour/session_handle.h" #include "gtkmm2ext/cairo_widget.h" +#include "ardour_button.h" namespace ARDOUR { class Session; @@ -80,6 +81,9 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr void set_session (ARDOUR::Session *s); void set_negative_allowed (bool yn); + ArdourButton* left_btn () { return &_left_btn; } + ArdourButton* right_btn () { return &_right_btn; } + /** Alter cairo scaling during rendering. * * Used by clocks that resize themselves @@ -106,15 +110,10 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr 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); - } + + ArdourButton _left_btn; + ArdourButton _right_btn; + private: Mode _mode; std::string _name; @@ -131,24 +130,20 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr bool edit_is_negative; Glib::RefPtr _layout; - Glib::RefPtr _left_layout; - Glib::RefPtr _right_layout; + + bool _with_info; Pango::AttrColor* editing_attr; Pango::AttrColor* foreground_attr; Pango::AttrList normal_attributes; Pango::AttrList editing_attributes; - Pango::AttrList info_attributes; int first_height; int first_width; bool style_resets_first; int layout_height; int layout_width; - int info_height; - int upper_height; - double mode_based_info_ratio; double corner_radius; uint32_t font_size; @@ -204,12 +199,11 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr void on_style_changed (const Glib::RefPtr&); void on_size_request (Gtk::Requisition* req); bool on_motion_notify_event (GdkEventMotion *ev); - void on_size_allocate (Gtk::Allocation&); bool on_focus_out_event (GdkEventFocus*); void set_slave_info (); void set_timecode (framepos_t, bool); - void set_bbt (framepos_t, bool); + void set_bbt (framepos_t, ARDOUR::framecnt_t, bool); void set_minsec (framepos_t, bool); void set_frames (framepos_t, bool);