Shut up.
[ardour.git] / gtk2_ardour / time_axis_view_item.cc
index 6f25f1e6b5373e6507e04d2d092538fd139dd182..1e75a7845ea5f1d6d4c60a76844c052dc36b1754 100644 (file)
 
 */
 
-#include <pbd/error.h>
-#include <pbd/stacktrace.h>
+#include "pbd/error.h"
+#include "pbd/stacktrace.h"
 
-#include <ardour/types.h>
-#include <ardour/ardour.h>
+#include "ardour/types.h"
+#include "ardour/ardour.h"
 
 #include <gtkmm2ext/utils.h>
 
@@ -105,7 +105,8 @@ TimeAxisViewItem::TimeAxisViewItem(const string & it_name, ArdourCanvas::Group&
 }
 
 TimeAxisViewItem::TimeAxisViewItem (const TimeAxisViewItem& other)
-       : trackview (other.trackview)
+       : sigc::trackable(other)
+       , trackview (other.trackview)
 {
 
        Gdk::Color c;
@@ -135,7 +136,7 @@ TimeAxisViewItem::init (const string& it_name, double spu, Gdk::Color& base_colo
        frame_position = start ;
        item_duration = duration ;
        name_connected = false;
-       // why? fill_opacity = 60;
+       fill_opacity = 60;
        position_locked = false ;
        max_item_duration = ARDOUR::max_frames;
        min_item_duration = 0 ;
@@ -161,12 +162,11 @@ TimeAxisViewItem::init (const string& it_name, double spu, Gdk::Color& base_colo
                frame = new ArdourCanvas::SimpleRect (*group);
                frame->property_x1() = (double) 0.0;
                frame->property_y1() = (double) 1.0;
-               frame->property_x2() = (double) trackview.editor.frame_to_pixel(duration);
+               frame->property_x2() = (double) trackview.editor().frame_to_pixel(duration);
                frame->property_y2() = (double) trackview.current_height();
                frame->property_outline_pixels() = 1;
                frame->property_outline_what() = 0xF;
                frame->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
-               frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
 
                /* by default draw all 4 edges */
 
@@ -194,15 +194,13 @@ TimeAxisViewItem::init (const string& it_name, double spu, Gdk::Color& base_colo
                name_highlight = new ArdourCanvas::SimpleRect (*group);
                if (visibility & FullWidthNameHighlight) {
                        name_highlight->property_x1() = (double) 0.0;
-                       name_highlight->property_x2() = (double) (trackview.editor.frame_to_pixel(item_duration));
+                       name_highlight->property_x2() = (double) (trackview.editor().frame_to_pixel(item_duration));
                } else {
                        name_highlight->property_x1() = (double) 1.0;
-                       name_highlight->property_x2() = (double) (trackview.editor.frame_to_pixel(item_duration)) - 1;
+                       name_highlight->property_x2() = (double) (trackview.editor().frame_to_pixel(item_duration)) - 1;
                }
                name_highlight->property_y1() = (double) (trackview.current_height() - TimeAxisViewItem::NAME_HIGHLIGHT_SIZE);
                name_highlight->property_y2() = (double) (trackview.current_height() - 1);
-               name_highlight->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_NameHighlightFill.get();
-               name_highlight->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_NameHighlightOutline.get();
 
                name_highlight->set_data ("timeaxisviewitem", this);
 
@@ -235,15 +233,13 @@ TimeAxisViewItem::init (const string& it_name, double spu, Gdk::Color& base_colo
                frame_handle_start->property_y1() = (double) 1.0;
                frame_handle_start->property_y2() = (double) TimeAxisViewItem::GRAB_HANDLE_LENGTH+1;
                frame_handle_start->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_FrameHandle.get();
-               frame_handle_start->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_FrameHandle.get();
-               
+
                frame_handle_end = new ArdourCanvas::SimpleRect (*group);
-               frame_handle_end->property_x1() = (double) (trackview.editor.frame_to_pixel(get_duration())) - (TimeAxisViewItem::GRAB_HANDLE_LENGTH);
-               frame_handle_end->property_x2() = (double) trackview.editor.frame_to_pixel(get_duration());
+               frame_handle_end->property_x1() = (double) (trackview.editor().frame_to_pixel(get_duration())) - (TimeAxisViewItem::GRAB_HANDLE_LENGTH);
+               frame_handle_end->property_x2() = (double) trackview.editor().frame_to_pixel(get_duration());
                frame_handle_end->property_y1() = (double) 1;
                frame_handle_end->property_y2() = (double) TimeAxisViewItem::GRAB_HANDLE_LENGTH + 1;
                frame_handle_end->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_FrameHandle.get();
-               frame_handle_end->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_FrameHandle.get();
 
        } else {
                frame_handle_start = 0;
@@ -344,7 +340,7 @@ TimeAxisViewItem::set_duration (nframes_t dur, void* src)
 
        item_duration = dur;
        
-       reset_width_dependent_items (trackview.editor.frame_to_pixel (dur));
+       reset_width_dependent_items (trackview.editor().frame_to_pixel (dur));
        
        DurationChanged (dur, src) ; /* EMIT_SIGNAL */
        return true;
@@ -572,16 +568,15 @@ TimeAxisViewItem::set_name_text(const ustring& new_name)
 }
 
 /**
- * Set the y position and height of this item.
+ * Set the height of this item
  *
- * @param y the new y position
  * @param h the new height
  */            
 void
-TimeAxisViewItem::set_y_position_and_height (double y, double h)
+TimeAxisViewItem::set_height (double height)
 {
        if (name_highlight) {
-               if (h < NAME_HIGHLIGHT_THRESH) {
+               if (height < NAME_HIGHLIGHT_THRESH) {
                        name_highlight->hide();
                        if (name_text) {
                                name_text->hide();
@@ -593,20 +588,20 @@ TimeAxisViewItem::set_y_position_and_height (double y, double h)
                        }
                }
 
-               if (h > NAME_HIGHLIGHT_SIZE) {
-                       name_highlight->property_y1() = (double) y + h + 1 - NAME_HIGHLIGHT_SIZE;
-                       name_highlight->property_y2() = (double) y + h;
+               if (height > NAME_HIGHLIGHT_SIZE) {
+                       name_highlight->property_y1() = (double) height+1 - NAME_HIGHLIGHT_SIZE;
+                       name_highlight->property_y2() = (double) height;
                }
                else {
                        /* it gets hidden now anyway */
-                       name_highlight->property_y1() = (double) y;
-                       name_highlight->property_y2() = (double) y + h;
+                       name_highlight->property_y1() = (double) 1.0;
+                       name_highlight->property_y2() = (double) height;
                }
        }
 
        if (name_text) {
-               name_text->property_y() = y + h + 1 - NAME_Y_OFFSET;
-               if (h < NAME_HIGHLIGHT_THRESH) {
+               name_text->property_y() = height+1 - NAME_Y_OFFSET;
+               if (height < NAME_HIGHLIGHT_THRESH) {
                        name_text->property_fill_color_rgba() =  fill_color;
                }
                else {
@@ -615,12 +610,10 @@ TimeAxisViewItem::set_y_position_and_height (double y, double h)
        }
 
        if (frame) {
-               frame->property_y1() = y;
-               frame->property_y2() = y + h + 1;
+               frame->property_y2() = height+1;
        }
 
-       vestigial_frame->property_y1() = y;
-       vestigial_frame->property_y2() = y + h + 1;
+       vestigial_frame->property_y2() = height+1;
 }
 
 /**
@@ -1056,3 +1049,14 @@ TimeAxisViewItem::idle_remove_this_item(TimeAxisViewItem* item, void* src)
        return false;
 }
 
+void
+TimeAxisViewItem::set_y (double y)
+{
+       double const old = group->property_y ();
+       if (y != old) {
+               group->move (0, y - old);
+       }
+}
+
+
+