prepare fade+trim cursors (cursor image still missing)
authorRobin Gareus <robin@gareus.org>
Sat, 31 May 2014 12:04:41 +0000 (14:04 +0200)
committerRobin Gareus <robin@gareus.org>
Sat, 31 May 2014 12:04:41 +0000 (14:04 +0200)
gtk2_ardour/editor_mouse.cc
gtk2_ardour/mouse_cursors.cc
gtk2_ardour/mouse_cursors.h

index e8fae02727e32e2327f3f9004f1a1c60d57df5d9..4d3c01b46d463829a97815001a56094735a7b518 100644 (file)
@@ -2011,7 +2011,6 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
                }
                break;
 
-       case FadeInTrimHandleItem:
        case FadeInHandleItem:
                if (mouse_mode == MouseObject && !internal_editing()) {
                        ArdourCanvas::Rectangle *rect = dynamic_cast<ArdourCanvas::Rectangle *> (item);
@@ -2023,7 +2022,17 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
                }
                break;
 
-       case FadeOutTrimHandleItem:
+       case FadeInTrimHandleItem:
+               if (mouse_mode == MouseObject && !internal_editing()) {
+                       ArdourCanvas::Rectangle *rect = dynamic_cast<ArdourCanvas::Rectangle *> (item);
+                       if (rect) {
+                               RegionView* rv = static_cast<RegionView*>(item->get_data ("regionview"));
+                               rect->set_fill_color (rv->get_fill_color());
+                               set_canvas_cursor (_cursors->fade_trim_in);
+                       }
+               }
+               break;
+
        case FadeOutHandleItem:
                if (mouse_mode == MouseObject && !internal_editing()) {
                        ArdourCanvas::Rectangle *rect = dynamic_cast<ArdourCanvas::Rectangle *> (item);
@@ -2034,6 +2043,18 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
                        }
                }
                break;
+
+       case FadeOutTrimHandleItem:
+               if (mouse_mode == MouseObject && !internal_editing()) {
+                       ArdourCanvas::Rectangle *rect = dynamic_cast<ArdourCanvas::Rectangle *> (item);
+                       if (rect) {
+                               RegionView* rv = static_cast<RegionView*>(item->get_data ("regionview"));
+                               rect->set_fill_color (rv->get_fill_color ());
+                               set_canvas_cursor (_cursors->fade_trim_out);
+                       }
+               }
+               break;
+
        case FeatureLineItem:
        {
                ArdourCanvas::Line *line = dynamic_cast<ArdourCanvas::Line *> (item);
index 98e33d77d696240ca12dfa8151e56bd8459fd5b7..9ccaf4de434b2cd59081c1204c285da23e5261b4 100644 (file)
@@ -114,6 +114,16 @@ MouseCursors::MouseCursors ()
                fade_out = new Cursor (Display::get_default(), p, 29, 0);
        }
 
+       {
+               RefPtr<Pixbuf> p (::get_icon ("fade_in_cursor"));
+               fade_trim_in = new Cursor (Display::get_default(), p, 0, 0);
+       }
+
+       {
+               RefPtr<Pixbuf> p (::get_icon ("fade_out_cursor"));
+               fade_trim_out = new Cursor (Display::get_default(), p, 29, 0);
+       }
+
        {
                RefPtr<Pixbuf> p (::get_icon ("resize_left_cursor"));
                resize_left = new Cursor (Display::get_default(), p, 3, 10);
index bf93e1ad78b396e75ca571dff788f2404ed383fb..414ec3bae627f10b8b7b07c9c96e0387104af248 100644 (file)
@@ -38,6 +38,8 @@ public:
        Gdk::Cursor* left_side_trim_right_only;
        Gdk::Cursor* fade_in;
        Gdk::Cursor* fade_out;
+       Gdk::Cursor* fade_trim_in;
+       Gdk::Cursor* fade_trim_out;
        Gdk::Cursor* selector;
        Gdk::Cursor* grabber;
        Gdk::Cursor* grabber_note;