/*
- Copyright (C) 2000-2007 Paul Davis
+ Copyright (C) 2000-2007 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
#ifndef __ardour_tempo_lines_h__
#define __ardour_tempo_lines_h__
-#include <vector>
-#include <ardour/tempo.h>
-#include "canvas.h"
-#include "simpleline.h"
+#include "ardour/tempo.h"
+
+#include "canvas/line_set.h"
class TempoLines {
public:
- TempoLines(ArdourCanvas::Canvas& canvas, ArdourCanvas::Group* group)
- : _canvas(canvas)
- , _group(group)
- {}
-
- ArdourCanvas::SimpleLine* get_line();
-
- void draw(ARDOUR::TempoMap::BBTPointList& points, double frames_per_unit);
+ TempoLines (ArdourCanvas::Container* group, double screen_height);
+
+ void tempo_map_changed();
+
+ void draw (std::vector<ARDOUR::TempoMap::BBTPoint>& grid,
+ unsigned divisions,
+ ARDOUR::framecnt_t leftmost_frame,
+ ARDOUR::framecnt_t frame_rate);
+
+ void show();
void hide();
private:
- typedef std::vector<ArdourCanvas::SimpleLine*> Lines;
- Lines _free_lines;
- Lines _used_lines;
+ void draw_ticks (std::vector<ARDOUR::TempoMap::BBTPoint>& grid,
+ unsigned divisions,
+ ARDOUR::framecnt_t leftmost_frame,
+ ARDOUR::framecnt_t frame_rate);
- ArdourCanvas::Canvas& _canvas;
- ArdourCanvas::Group* _group;
+ ArdourCanvas::LineSet lines;
};
#endif /* __ardour_tempo_lines_h__ */