X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmarker.h;h=e9ff0501edc1fdc28ac908953d284355f8135978;hb=b092cfc21638e4b89164f36ed708136c6cf9c8e0;hp=a379f010c96a9c34e3ff941d620db16e39c9be92;hpb=5328a114c93f14178a5d5b97d7a6b95ea007552e;p=ardour.git diff --git a/gtk2_ardour/marker.h b/gtk2_ardour/marker.h index a379f010c9..e9ff0501ed 100644 --- a/gtk2_ardour/marker.h +++ b/gtk2_ardour/marker.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2001 Paul Davis + Copyright (C) 2001 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,9 +24,10 @@ #include #include +#include #include "ardour/ardour.h" -#include "pbd/destructible.h" +#include "pbd/signals.h" #include "canvas.h" @@ -37,15 +38,15 @@ namespace ARDOUR { class PublicEditor; -class Marker : public PBD::Destructible +class Marker : public sigc::trackable { public: enum Type { Mark, Tempo, Meter, - Start, - End, + Start, ///< session start + End, ///< session end LoopStart, LoopEnd, PunchIn, @@ -53,11 +54,13 @@ class Marker : public PBD::Destructible }; - Marker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const std::string& text, Type, + Marker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const std::string& text, Type, nframes_t frame = 0, bool handle_events = true); virtual ~Marker (); + static PBD::Signal1 CatchDeletion; + ArdourCanvas::Item& the_item() const; void add_line (ArdourCanvas::Group*, double y_origin, double initial_height); @@ -68,12 +71,12 @@ class Marker : public PBD::Destructible void set_position (nframes64_t); void set_name (const std::string&); void set_color_rgba (uint32_t rgba); - + nframes64_t position() const { return frame_position; } ArdourCanvas::Group * get_parent() { return _parent; } void reparent (ArdourCanvas::Group & parent); - + void hide (); void show (); @@ -97,7 +100,7 @@ class Marker : public PBD::Destructible unsigned char shift; /* should be double, but its always small and integral */ Type _type; int name_height; - + void reposition (); };