#include <string>
#include <glib.h>
-#include <libgnomecanvasmm/pixbuf.h>
#include <sigc++/signal.h>
#include "ardour/ardour.h"
#include "pbd/signals.h"
-#include "canvas.h"
+#include "canvas/fwd.h"
+#include "canvas/types.h"
namespace ARDOUR {
class TempoSection;
class PublicEditor;
-class Marker : public sigc::trackable
+/** Location Marker
+ *
+ * Editor ruler representation of a location marker or range on the timeline.
+ */
+class ArdourMarker : public sigc::trackable
{
public:
enum Type {
};
- Marker (PublicEditor& editor, ArdourCanvas::Group &, guint32 rgba, const std::string& text, Type,
+ ArdourMarker (PublicEditor& editor, ArdourCanvas::Container &, guint32 rgba, const std::string& text, Type,
framepos_t frame = 0, bool handle_events = true);
- virtual ~Marker ();
+ virtual ~ArdourMarker ();
- static PBD::Signal1<void,Marker*> CatchDeletion;
+ static PBD::Signal1<void,ArdourMarker*> CatchDeletion;
+
+ static void setup_sizes (const double timebar_height);
ArdourCanvas::Item& the_item() const;
framepos_t position() const { return frame_position; }
- ArdourCanvas::Group * get_parent() { return _parent; }
- void reparent (ArdourCanvas::Group & parent);
+ ArdourCanvas::Container * get_parent() { return _parent; }
+ void reparent (ArdourCanvas::Container & parent);
void hide ();
void show ();
}
bool label_on_left () const;
-
+
protected:
PublicEditor& editor;
- Pango::FontDescription* name_font;
+ Pango::FontDescription name_font;
- ArdourCanvas::Group* _parent;
- ArdourCanvas::Group *group;
+ ArdourCanvas::Container* _parent;
+ ArdourCanvas::Container *group;
ArdourCanvas::Polygon *mark;
- ArdourCanvas::Pixbuf *name_pixbuf;
+ ArdourCanvas::Text *_name_item;
ArdourCanvas::Points *points;
- ArdourCanvas::SimpleLine* _line;
- ArdourCanvas::Points *line_points;
- ArdourCanvas::SimpleRect* _name_background;
+ ArdourCanvas::Line* _track_canvas_line;
+ ArdourCanvas::Rectangle* _name_background;
std::string _name;
double unit_position;
private:
/* disallow copy construction */
- Marker (Marker const &);
- Marker & operator= (Marker const &);
+ ArdourMarker (ArdourMarker const &);
+ ArdourMarker & operator= (ArdourMarker const &);
};
-class TempoMarker : public Marker
+class TempoMarker : public ArdourMarker
{
public:
- TempoMarker (PublicEditor& editor, ArdourCanvas::Group &, guint32 rgba, const std::string& text, ARDOUR::TempoSection&);
+ TempoMarker (PublicEditor& editor, ArdourCanvas::Container &, guint32 rgba, const std::string& text, ARDOUR::TempoSection&);
~TempoMarker ();
ARDOUR::TempoSection& tempo() const { return _tempo; }
+ void update_height_mark (const double& ratio);
private:
ARDOUR::TempoSection& _tempo;
};
-class MeterMarker : public Marker
+class MeterMarker : public ArdourMarker
{
public:
- MeterMarker (PublicEditor& editor, ArdourCanvas::Group &, guint32 rgba, const std::string& text, ARDOUR::MeterSection&);
+ MeterMarker (PublicEditor& editor, ArdourCanvas::Container &, guint32 rgba, const std::string& text, ARDOUR::MeterSection&);
~MeterMarker ();
ARDOUR::MeterSection& meter() const { return _meter; }