From 913445c9815646c7b9e9909d109722cf9b8c88a6 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Fri, 9 Feb 2018 11:21:40 -0600 Subject: new_grid: Add grid_lines.cc --- gtk2_ardour/grid_lines.cc | 80 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 gtk2_ardour/grid_lines.cc (limited to 'gtk2_ardour/grid_lines.cc') diff --git a/gtk2_ardour/grid_lines.cc b/gtk2_ardour/grid_lines.cc new file mode 100644 index 0000000000..85f3f1e606 --- /dev/null +++ b/gtk2_ardour/grid_lines.cc @@ -0,0 +1,80 @@ +/* + Copyright (C) 2002-2018 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 + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include "pbd/compose.h" + +#include "canvas/canvas.h" +#include "canvas/debug.h" +#include "canvas/ruler.h" + +#include "grid_lines.h" +#include "public_editor.h" +#include "rgb_macros.h" +#include "ui_config.h" + +using namespace std; +using namespace ArdourCanvas; + +GridLines::GridLines (Container* group, double) + : lines (group, LineSet::Vertical) +{ + lines.set_extent (COORD_MAX); +} + +GridLines::~GridLines () +{ +} + +void +GridLines::show () +{ + lines.show (); +} + +void +GridLines::hide () +{ + lines.hide (); +} + +void +GridLines::draw (std::vector marks) +{ + +// if (line_density > 2.0f) { +// lines.clear (); +// return; +// } + +// if (_lower == _upper) { +// return; +// } + + lines.clear(); + + const uint32_t c = UIConfiguration::instance().color_mod("measure line beat", "measure line beat"); + + for (vector::const_iterator m = marks.begin(); m != marks.end(); ++m) { + + samplepos_t s = m->position; + lines.add (PublicEditor::instance().sample_to_pixel_unrounded (s), 1.0, c); + + } +} + -- cgit v1.2.3