Use conf.fatal for fatal configuration errors
[ardour.git] / gtk2_ardour / time_axis_view_item.cc
index 42abcf700ab22fc0e3aa383c3b7bc213c5880d37..d3e4a03226866c327ca61d89e9b18267a12a9a49 100644 (file)
@@ -1,21 +1,29 @@
 /*
-    Copyright (C) 2003 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.
-
-*/
+ * Copyright (C) 2005-2019 Paul Davis <paul@linuxaudiosystems.com>
+ * Copyright (C) 2005 Karsten Wiese <fzuuzf@googlemail.com>
+ * Copyright (C) 2005 Taybin Rutkin <taybin@taybin.com>
+ * Copyright (C) 2007-2012 Carl Hetherington <carl@carlh.net>
+ * Copyright (C) 2007-2015 David Robillard <d@drobilla.net>
+ * Copyright (C) 2007 Doug McLain <doug@nostar.net>
+ * Copyright (C) 2013-2019 Robin Gareus <robin@gareus.org>
+ * Copyright (C) 2014-2016 Nick Mainsbridge <mainsbridge@gmail.com>
+ * Copyright (C) 2014 Ben Loftis <ben@harrisonconsoles.com>
+ * Copyright (C) 2015 Tim Mayberry <mojofunk@gmail.com>
+ *
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
 
 #include <utility>
 
@@ -231,19 +239,19 @@ TimeAxisViewItem::init (ArdourCanvas::Item* parent, double fpp, uint32_t base_co
                double top   = TimeAxisViewItem::GRAB_HANDLE_TOP;
                double width = TimeAxisViewItem::GRAB_HANDLE_WIDTH;
 
-               sample_handle_start = new ArdourCanvas::Rectangle (group, ArdourCanvas::Rect (0.0, top, width, trackview.current_height()));
-               CANVAS_DEBUG_NAME (sample_handle_start, "TAVI frame handle start");
-               sample_handle_start->set_outline (false);
-               sample_handle_start->set_fill (false);
-               sample_handle_start->Event.connect (sigc::bind (sigc::mem_fun (*this, &TimeAxisViewItem::sample_handle_crossing), sample_handle_start));
-
-               sample_handle_end = new ArdourCanvas::Rectangle (group, ArdourCanvas::Rect (0.0, top, width, trackview.current_height()));
-               CANVAS_DEBUG_NAME (sample_handle_end, "TAVI frame handle end");
-               sample_handle_end->set_outline (false);
-               sample_handle_end->set_fill (false);
-               sample_handle_end->Event.connect (sigc::bind (sigc::mem_fun (*this, &TimeAxisViewItem::sample_handle_crossing), sample_handle_end));
+               frame_handle_start = new ArdourCanvas::Rectangle (group, ArdourCanvas::Rect (0.0, top, width, trackview.current_height()));
+               CANVAS_DEBUG_NAME (frame_handle_start, "TAVI frame handle start");
+               frame_handle_start->set_outline (false);
+               frame_handle_start->set_fill (false);
+               frame_handle_start->Event.connect (sigc::bind (sigc::mem_fun (*this, &TimeAxisViewItem::frame_handle_crossing), frame_handle_start));
+
+               frame_handle_end = new ArdourCanvas::Rectangle (group, ArdourCanvas::Rect (0.0, top, width, trackview.current_height()));
+               CANVAS_DEBUG_NAME (frame_handle_end, "TAVI frame handle end");
+               frame_handle_end->set_outline (false);
+               frame_handle_end->set_fill (false);
+               frame_handle_end->Event.connect (sigc::bind (sigc::mem_fun (*this, &TimeAxisViewItem::frame_handle_crossing), frame_handle_end));
        } else {
-               sample_handle_start = sample_handle_end = 0;
+               frame_handle_start = frame_handle_end = 0;
        }
 
        //set_color (base_color);
@@ -560,9 +568,9 @@ TimeAxisViewItem::set_height (double height)
                frame->set_y0 (0.0);
                frame->set_y1 (height);
 
-               if (sample_handle_start) {
-                       sample_handle_start->set_y1 (height);
-                       sample_handle_end->set_y1 (height);
+               if (frame_handle_start) {
+                       frame_handle_start->set_y1 (height);
+                       frame_handle_end->set_y1 (height);
                }
 
                if (selection_frame) {
@@ -611,7 +619,7 @@ TimeAxisViewItem::set_color (uint32_t base_color)
 }
 
 ArdourCanvas::Item*
-TimeAxisViewItem::get_canvas_sample()
+TimeAxisViewItem::get_canvas_frame()
 {
        return frame;
 }
@@ -675,7 +683,7 @@ TimeAxisViewItem::get_fill_color () const
        const std::string mod_name = (_dragging ? "dragging region" : fill_color_name);
 
        if (_selected) {
-               return UIConfiguration::instance().color_mod ("selected region base", mod_name);
+               return UIConfiguration::instance().color ("selected region base");
        } else if (_recregion) {
                return UIConfiguration::instance().color ("recording rect");
        } else if ((!UIConfiguration::instance().get_show_name_highlight() || high_enough_for_name) &&
@@ -741,25 +749,25 @@ TimeAxisViewItem::set_trim_handle_colors()
 {
 #if 1
        /* Leave them transparent for now */
-       if (sample_handle_start) {
-               sample_handle_start->set_fill_color (0x00000000);
-               sample_handle_end->set_fill_color (0x00000000);
+       if (frame_handle_start) {
+               frame_handle_start->set_fill_color (0x00000000);
+               frame_handle_end->set_fill_color (0x00000000);
        }
 #else
-       if (sample_handle_start) {
+       if (frame_handle_start) {
                if (position_locked) {
-                       sample_handle_start->set_fill_color (UIConfiguration::instance().get_TrimHandleLocked());
-                       sample_handle_end->set_fill_color (UIConfiguration::instance().get_TrimHandleLocked());
+                       frame_handle_start->set_fill_color (UIConfiguration::instance().get_TrimHandleLocked());
+                       frame_handle_end->set_fill_color (UIConfiguration::instance().get_TrimHandleLocked());
                } else {
-                       sample_handle_start->set_fill_color (UIConfiguration::instance().get_TrimHandle());
-                       sample_handle_end->set_fill_color (UIConfiguration::instance().get_TrimHandle());
+                       frame_handle_start->set_fill_color (UIConfiguration::instance().get_TrimHandle());
+                       frame_handle_end->set_fill_color (UIConfiguration::instance().get_TrimHandle());
                }
        }
 #endif
 }
 
 bool
-TimeAxisViewItem::sample_handle_crossing (GdkEvent* ev, ArdourCanvas::Rectangle* item)
+TimeAxisViewItem::frame_handle_crossing (GdkEvent* ev, ArdourCanvas::Rectangle* item)
 {
        switch (ev->type) {
        case GDK_LEAVE_NOTIFY:
@@ -820,9 +828,9 @@ TimeAxisViewItem::reset_width_dependent_items (double pixel_width)
                        frame->set_x1 (std::max(1.0, pixel_width));
                }
 
-               if (sample_handle_start) {
-                       sample_handle_start->hide();
-                       sample_handle_end->hide();
+               if (frame_handle_start) {
+                       frame_handle_start->hide();
+                       frame_handle_end->hide();
                }
 
        } else {
@@ -838,24 +846,24 @@ TimeAxisViewItem::reset_width_dependent_items (double pixel_width)
                        }
                }
 
-               if (sample_handle_start) {
+               if (frame_handle_start) {
                        if (pixel_width < (3 * TimeAxisViewItem::GRAB_HANDLE_WIDTH)) {
                                /*
                                 * there's less than GRAB_HANDLE_WIDTH of the region between
-                                * the right-hand end of sample_handle_start and the left-hand
-                                * end of sample_handle_end, so disable the handles
+                                * the right-hand end of frame_handle_start and the left-hand
+                                * end of frame_handle_end, so disable the handles
                                 */
 
-                               sample_handle_start->hide();
-                               sample_handle_end->hide();
+                               frame_handle_start->hide();
+                               frame_handle_end->hide();
                        } else {
-                               sample_handle_start->show();
-                               sample_handle_end->set_x0 (pixel_width - (TimeAxisViewItem::GRAB_HANDLE_WIDTH));
-                               sample_handle_end->set_x1 (pixel_width);
-                               sample_handle_end->show();
+                               frame_handle_start->show();
+                               frame_handle_end->set_x0 (pixel_width - (TimeAxisViewItem::GRAB_HANDLE_WIDTH));
+                               frame_handle_end->set_x1 (pixel_width);
+                               frame_handle_end->show();
 
-                               sample_handle_start->raise_to_top ();
-                               sample_handle_end->raise_to_top ();
+                               frame_handle_start->raise_to_top ();
+                               frame_handle_end->raise_to_top ();
                        }
                }
        }
@@ -870,7 +878,7 @@ TimeAxisViewItem::manage_name_text ()
                return;
        }
 
-       if (!wide_enough_for_name || !high_enough_for_name) {
+       if (!(visibility & ShowNameText) || (!wide_enough_for_name || !high_enough_for_name)) {
                name_text->hide ();
                return;
        }