need_size_info = false;
}
- canvas_display = new Group (*canvas.root(), 0.0, 0.0);
+ canvas_display = new Group (*ed.get_trackview_group (), 0.0, 0.0);
selection_group = new Group (*canvas_display);
selection_group->hide();
controls_table.set_no_show_all ();
resizer.set_size_request (10, 10);
+ resizer.set_name ("ResizeHandle");
resizer.signal_expose_event().connect (mem_fun (*this, &TimeAxisView::resizer_expose));
resizer.signal_button_press_event().connect (mem_fun (*this, &TimeAxisView::resizer_button_press));
resizer.signal_button_release_event().connect (mem_fun (*this, &TimeAxisView::resizer_button_release));
*/
canvas_display->get_bounds (ix1, iy1, ix2, iy2);
+ iy1 += editor.get_trackview_group_vertical_offset ();
Group* pg = canvas_display->property_parent();
pg->i2w (ix1, iy1);
/* resize the selection rect */
show_selection (editor.get_selection().time);
}
-
+
+ reshow_feature_lines ();
}
bool
(*i)->set_selected (false);
}
}
+
+ resizer.queue_draw ();
}
void
while (feature_lines.size()< analysis_features.size()) {
ArdourCanvas::SimpleLine* l = new ArdourCanvas::SimpleLine (*canvas_display);
l->property_color_rgba() = (guint) ARDOUR_UI::config()->canvasvar_ZeroLine.get();
- l->property_y1() = 0;
- l->property_y2() = current_height();
feature_lines.push_back (l);
}
for (i = analysis_features.begin(), l = feature_lines.begin(); i != analysis_features.end() && l != feature_lines.end(); ++i, ++l) {
(*l)->property_x1() = editor.frame_to_pixel (*i);
(*l)->property_x2() = editor.frame_to_pixel (*i);
+ (*l)->property_y1() = 0;
+ (*l)->property_y2() = current_height();
(*l)->show ();
}
}
}
int32_t delta = (int32_t) floor (resize_drag_start - ev->y_root);
- int xroot, yroot;
- Glib::RefPtr<Gdk::Window> win (resizer.get_window());
-
- if (win) {
- win->get_origin (xroot, yroot);
- editor.queue_draw_resize_line (yroot + ev->y);
- }
resize_idle_target = std::max (resize_idle_target - delta, (int) hSmall);
-
editor.add_to_idle_resize (this, resize_idle_target);
resize_drag_start = ev->y_root;
bool
TimeAxisView::resizer_expose (GdkEventExpose* event)
{
- resizer.get_window()->draw_rectangle (resizer.get_style()->get_fg_gc(STATE_ACTIVE),
- true,
- event->area.x,
- event->area.y,
- event->area.width,
- event->area.height);
+ int w, h, x, y, d;
+ Glib::RefPtr<Gdk::Window> win (resizer.get_window());
+ Glib::RefPtr<Gdk::GC> dark (resizer.get_style()->get_fg_gc (STATE_NORMAL));
+ Glib::RefPtr<Gdk::GC> light (resizer.get_style()->get_bg_gc (STATE_NORMAL));
+
+ win->draw_rectangle (controls_ebox.get_style()->get_bg_gc(STATE_NORMAL),
+ true,
+ event->area.x,
+ event->area.y,
+ event->area.width,
+ event->area.height);
+
+ win->get_geometry (x, y, w, h, d);
+
+ /* handle/line #1 */
+
+ win->draw_line (dark, 0, 0, w - 2, 0);
+ win->draw_point (dark, 0, 1);
+ win->draw_line (light, 1, 1, w - 1, 1);
+ win->draw_point (light, w - 1, 0);
+
+ /* handle/line #2 */
+
+ win->draw_line (dark, 0, 4, w - 2, 4);
+ win->draw_point (dark, 0, 5);
+ win->draw_line (light, 1, 5, w - 1, 5);
+ win->draw_point (light, w - 1, 4);
+
+ /* handle/line #3 */
+
+ win->draw_line (dark, 0, 8, w - 2, 8);
+ win->draw_point (dark, 0, 9);
+ win->draw_line (light, 1, 9, w - 1, 9);
+ win->draw_point (light, w - 1, 8);
+
return true;
}