X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Ftime_axis_view_item.h;h=41d75883d36cc53813f10f2366e821ee5a1550e1;hb=154f9825ff72d691ba550de573948424b81a09a6;hp=e78b9c9488fab1c15f7232897361325622e132c1;hpb=6a5d805b383cd71bb1d0984964439c5ec08e9270;p=ardour.git diff --git a/gtk2_ardour/time_axis_view_item.h b/gtk2_ardour/time_axis_view_item.h index e78b9c9488..41d75883d3 100644 --- a/gtk2_ardour/time_axis_view_item.h +++ b/gtk2_ardour/time_axis_view_item.h @@ -33,12 +33,12 @@ namespace ArdourCanvas { class Pixbuf; class Rectangle; class Item; - class Container; + class Container; class Text; } -using ARDOUR::framepos_t; -using ARDOUR::framecnt_t; +using ARDOUR::samplepos_t; +using ARDOUR::samplecnt_t; /** * Base class for items that may appear upon a TimeAxisView. @@ -46,17 +46,17 @@ using ARDOUR::framecnt_t; class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList { - public: +public: virtual ~TimeAxisViewItem(); - virtual bool set_position(framepos_t, void*, double* delta = 0); - framepos_t get_position() const; - virtual bool set_duration(framecnt_t, void*); - framecnt_t get_duration() const; - virtual void set_max_duration(framecnt_t, void*); - framecnt_t get_max_duration() const; - virtual void set_min_duration(framecnt_t, void*); - framecnt_t get_min_duration() const; + virtual bool set_position(samplepos_t, void*, double* delta = 0); + samplepos_t get_position() const; + virtual bool set_duration(samplecnt_t, void*); + samplecnt_t get_duration() const; + virtual void set_max_duration(samplecnt_t, void*); + samplecnt_t get_max_duration() const; + virtual void set_min_duration(samplecnt_t, void*); + samplecnt_t get_min_duration() const; virtual void set_position_locked(bool, void*); bool get_position_locked() const; void set_max_duration_active(bool, void*); @@ -76,9 +76,9 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList void set_color (uint32_t); void set_name_text_color (); - uint32_t get_fill_color () const; + virtual uint32_t get_fill_color () const; - ArdourCanvas::Item* get_canvas_frame(); + ArdourCanvas::Item* get_canvas_sample(); ArdourCanvas::Item* get_canvas_group(); ArdourCanvas::Item* get_name_highlight(); @@ -95,9 +95,6 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList virtual void lower () { return; } virtual void lower_to_bottom () { return; } - virtual void hide_rect (); - virtual void show_rect (); - /** @return true if the name area should respond to events */ bool name_active() const { return name_connected; } @@ -109,27 +106,13 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList static const double GRAB_HANDLE_WIDTH; /* these are not constant, but vary with the pixel size - of the font used to display the item name. - */ + * of the font used to display the item name. + */ static int NAME_HEIGHT; static double NAME_Y_OFFSET; static double NAME_HIGHLIGHT_SIZE; static double NAME_HIGHLIGHT_THRESH; - /* if this is 1.0, we move the right boundary - of the item frame so that it is 1 pixel - after the end of the item. This gives nice - effects when splitting items. - - if this is zero, the right edge coincides - with the end of the item, and things don't - look so nice. - - this exists to allow easy debugging of the - two scenarios. - */ - static const double RIGHT_EDGE_SHIFT; - /** * Emitted when this Group has been removed. * This is different to the CatchDeletion signal in that this signal @@ -144,19 +127,19 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList sigc::signal NameChanged; /** Emiited when the position of this item changes */ - sigc::signal PositionChanged; + sigc::signal PositionChanged; /** Emitted when the position lock of this item is changed */ sigc::signal PositionLockChanged; /** Emitted when the duration of this item changes */ - sigc::signal DurationChanged; + sigc::signal DurationChanged; /** Emitted when the maximum item duration is changed */ - sigc::signal MaxDurationChanged; + sigc::signal MaxDurationChanged; /** Emitted when the mionimum item duration is changed */ - sigc::signal MinDurationChanged; + sigc::signal MinDurationChanged; enum Visibility { ShowFrame = 0x1, @@ -169,19 +152,19 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList FullWidthNameHighlight = 0x80 }; - protected: +protected: TimeAxisViewItem (const std::string &, ArdourCanvas::Item&, TimeAxisView&, double, uint32_t fill_color, - framepos_t, framecnt_t, bool recording = false, bool automation = false, Visibility v = Visibility (0)); + samplepos_t, samplecnt_t, bool recording = false, bool automation = false, Visibility v = Visibility (0)); TimeAxisViewItem (const TimeAxisViewItem&); - void init (ArdourCanvas::Item*, double, uint32_t, framepos_t, framepos_t, Visibility, bool, bool); + void init (ArdourCanvas::Item*, double, uint32_t, samplepos_t, samplepos_t, Visibility, bool, bool); - virtual bool canvas_group_event (GdkEvent*); + virtual bool canvas_group_event (GdkEvent*); virtual void set_colors(); - virtual void set_frame_color(); - virtual void set_frame_gradient (); + virtual void set_sample_color(); + virtual void set_sample_gradient (); void set_trim_handle_colors(); virtual void reset_width_dependent_items (double); @@ -195,16 +178,16 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList bool position_locked; /** position of this item on the timeline */ - framepos_t frame_position; + samplepos_t sample_position; /** duration of this item upon the timeline */ - framecnt_t item_duration; + samplecnt_t item_duration; /** maximum duration that this item can have */ - framecnt_t max_item_duration; + samplecnt_t max_item_duration; /** minimum duration that this item can have */ - framecnt_t min_item_duration; + samplecnt_t min_item_duration; /** indicates whether the max duration constraint is active */ bool max_duration_active; @@ -212,7 +195,7 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList /** indicates whether the min duration constraint is active */ bool min_duration_active; - /** frames per canvas pixel */ + /** samples per canvas pixel */ double samples_per_pixel; /** should the item respond to events */ @@ -227,43 +210,37 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList /** true if the name should respond to events */ bool name_connected; - /** true if a small vestigial rect should be shown when the item gets very narrow */ - bool show_vestigial; - uint32_t fill_color; - virtual uint32_t fill_opacity() const; - uint32_t last_item_width; int name_text_width; bool wide_enough_for_name; bool high_enough_for_name; - bool rect_visible; ArdourCanvas::Container* group; - ArdourCanvas::Rectangle* vestigial_frame; - ArdourCanvas::Rectangle* frame; + ArdourCanvas::Rectangle* sample; + ArdourCanvas::Rectangle* selection_sample; ArdourCanvas::Text* name_text; ArdourCanvas::Rectangle* name_highlight; - /* with these two values, if frame_handle_start == 0 then frame_handle_end will also be 0 */ - ArdourCanvas::Rectangle* frame_handle_start; ///< `frame' (fade) handle for the start of the item, or 0 - ArdourCanvas::Rectangle* frame_handle_end; ///< `frame' (fade) handle for the end of the item, or 0 + /* with these two values, if sample_handle_start == 0 then sample_handle_end will also be 0 */ + ArdourCanvas::Rectangle* sample_handle_start; ///< `sample' (fade) handle for the start of the item, or 0 + ArdourCanvas::Rectangle* sample_handle_end; ///< `sample' (fade) handle for the end of the item, or 0 - bool frame_handle_crossing (GdkEvent*, ArdourCanvas::Rectangle*); + bool sample_handle_crossing (GdkEvent*, ArdourCanvas::Rectangle*); double _height; Visibility visibility; + std::string fill_color_name; bool _recregion; bool _automation; ///< true if this is an automation region view bool _dragging; + double _width; private: - double _width; - void parameter_changed (std::string); - void manage_name_highlight (); - void manage_name_text (); + void manage_name_highlight (); + void manage_name_text (); }; /* class TimeAxisViewItem */