Gdk::Cursor* Editor::time_fx_cursor = 0;
Gdk::Cursor* Editor::fader_cursor = 0;
Gdk::Cursor* Editor::speaker_cursor = 0;
+Gdk::Cursor* Editor::note_cursor = 0;
Gdk::Cursor* Editor::wait_cursor = 0;
Gdk::Cursor* Editor::timebar_cursor = 0;
vertical_adjustment (0.0, 0.0, 10.0, 400.0),
horizontal_adjustment (0.0, 0.0, 20.0, 1200.0),
+ tempo_lines(0),
+ marker_tempo_lines(0),
+
/* tool bar related */
edit_cursor_clock (X_("editcursor"), false, X_("EditCursorClock"), true),
_dragging_playhead = false;
_dragging_hscrollbar = false;
- location_marker_color = Config->canvasvar_LocationMarker.get();
- location_range_color = Config->canvasvar_LocationRange.get();
- location_cd_marker_color = Config->canvasvar_LocationCDMarker.get();
- location_loop_color = Config->canvasvar_LocationLoop.get();
- location_punch_color = Config->canvasvar_LocationPunch.get();
+ location_marker_color = ARDOUR_UI::config()->canvasvar_LocationMarker.get();
+ location_range_color = ARDOUR_UI::config()->canvasvar_LocationRange.get();
+ location_cd_marker_color = ARDOUR_UI::config()->canvasvar_LocationCDMarker.get();
+ location_loop_color = ARDOUR_UI::config()->canvasvar_LocationLoop.get();
+ location_punch_color = ARDOUR_UI::config()->canvasvar_LocationPunch.get();
range_marker_drag_rect = 0;
marker_drag_line = 0;
edit_cursor_clock.ValueChanged.connect (mem_fun(*this, &Editor::edit_cursor_clock_changed));
+ ArdourCanvas::Canvas* time_pad = manage(new ArdourCanvas::Canvas());
+ ArdourCanvas::SimpleLine* pad_line_1 = manage(new ArdourCanvas::SimpleLine(*time_pad->root(),
+ 0.0, 1.0, 100.0, 1.0));
+ pad_line_1->property_color_rgba() = 0xFF0000FF;
+ pad_line_1->show();
+ time_pad->show();
+
time_canvas_vbox.pack_start (*_ruler_separator, false, false);
time_canvas_vbox.pack_start (*minsec_ruler, false, false);
time_canvas_vbox.pack_start (*smpte_ruler, false, false);
time_canvas_vbox.pack_start (*frames_ruler, false, false);
time_canvas_vbox.pack_start (*bbt_ruler, false, false);
time_canvas_vbox.pack_start (time_canvas, true, true);
- time_canvas_vbox.set_size_request (-1, (int)(timebar_height * visible_timebars) + 2);
+ time_canvas_vbox.set_size_request (-1, (int)(timebar_height * visible_timebars) + 5);
bbt_label.set_name ("EditorTimeButton");
bbt_label.set_size_request (-1, (int)timebar_height);
time_button_vbox.pack_start (mark_label, false, false);
time_button_event_box.add (time_button_vbox);
+ time_button_event_box.set_name ("TimebarLabelBase");
+ time_button_frame.set_shadow_type (Gtk::SHADOW_NONE);
time_button_event_box.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
- time_button_event_box.set_name ("TimebarLabelBase");
time_button_event_box.signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_label_button_release));
- time_button_frame.add(time_button_event_box);
- time_button_frame.property_shadow_type() = Gtk::SHADOW_OUT;
+ time_button_frame.add (time_button_event_box);
+ time_button_frame.set_name ("TimebarLabelBase");
+ time_button_frame.set_shadow_type (Gtk::SHADOW_ETCHED_OUT);
/* these enable us to have a dedicated window (for cursor setting, etc.)
for the canvas areas.
edit_packer.attach (edit_vscrollbar, 3, 4, 1, 2, FILL, FILL|EXPAND, 0, 0);
- edit_packer.attach (time_button_frame, 0, 2, 0, 1, FILL, FILL, 0, 0);
+ edit_packer.attach (time_button_frame, 0, 2, 0, 1, FILL, SHRINK, 0, 0);
edit_packer.attach (time_canvas_event_box, 2, 4, 0, 1, FILL|EXPAND, FILL, 0, 0);
edit_packer.attach (controls_layout, 1, 2, 1, 2, FILL, FILL|EXPAND, 0, 0);
void
Editor::show_window ()
{
- show_all ();
- present ();
+ show_all_children ();
/* re-hide editor list if necessary */
editor_list_button_toggled ();
tv = (static_cast<TimeAxisView*>(*i));
tv->reset_height ();
}
+
+ present ();
}
void
if (ARDOUR_UI::instance()->session_is_new ()) {
- TreeModel::Children rows = route_display_model->children();
+ TreeModel::Children rows = route_display_model->children();
TreeModel::Children::iterator i;
no_route_list_redisplay = true;
RouteTimeAxisView *rtv;
if ((rtv = dynamic_cast<RouteTimeAxisView*>(tv)) != 0) {
- if (rtv->route()->master()) {
+ if (rtv->route()->is_master()) {
route_list_display.get_selection()->unselect (i);
}
}
redisplay_route_list ();
}
- /* register for undo history */
+ /* register for undo history */
- session->register_with_memento_command_factory(_id, this);
+ session->register_with_memento_command_factory(_id, this);
}
void
mask = Bitmap::create (speaker_cursor_mask_bits, speaker_cursor_width, speaker_cursor_height);
speaker_cursor = new Gdk::Cursor (source, mask, ffg, fbg, speaker_cursor_x_hot, speaker_cursor_y_hot);
}
-
+
grabber_cursor = new Gdk::Cursor (HAND2);
cross_hair_cursor = new Gdk::Cursor (CROSSHAIR);
trimmer_cursor = new Gdk::Cursor (SB_H_DOUBLE_ARROW);
time_fx_cursor = new Gdk::Cursor (SIZING);
wait_cursor = new Gdk::Cursor (WATCH);
timebar_cursor = new Gdk::Cursor(LEFT_PTR);
+ note_cursor = new Gdk::Cursor (PENCIL);
}
/** Pop up a context menu for when the user clicks on a fade in or fade out */
mouse_mode_buttons.push_back (&mouse_timefx_button);
mouse_audition_button.add (*(manage (new Image (::get_icon("tool_audition")))));
mouse_audition_button.set_relief(Gtk::RELIEF_NONE);
+ mouse_note_button.add (*(manage (new Image (::get_icon("tool_note")))));
+ mouse_note_button.set_relief(Gtk::RELIEF_NONE);
+ mouse_mode_buttons.push_back (&mouse_note_button);
mouse_mode_buttons.push_back (&mouse_audition_button);
mouse_mode_button_set = new GroupedButtons (mouse_mode_buttons);
mouse_mode_button_box.pack_start(mouse_gain_button, true, true);
mouse_mode_button_box.pack_start(mouse_timefx_button, true, true);
mouse_mode_button_box.pack_start(mouse_audition_button, true, true);
+ mouse_mode_button_box.pack_start(mouse_note_button, true, true);
mouse_mode_button_box.set_homogeneous(true);
vector<string> edit_mode_strings;
mouse_zoom_button.set_name ("MouseModeButton");
mouse_timefx_button.set_name ("MouseModeButton");
mouse_audition_button.set_name ("MouseModeButton");
+ mouse_note_button.set_name ("MouseModeButton");
ARDOUR_UI::instance()->tooltips().set_tip (mouse_move_button, _("Select/Move Objects"));
ARDOUR_UI::instance()->tooltips().set_tip (mouse_select_button, _("Select/Move Ranges"));
ARDOUR_UI::instance()->tooltips().set_tip (mouse_zoom_button, _("Select Zoom Range"));
ARDOUR_UI::instance()->tooltips().set_tip (mouse_timefx_button, _("Stretch/Shrink Regions"));
ARDOUR_UI::instance()->tooltips().set_tip (mouse_audition_button, _("Listen to Specific Regions"));
+ ARDOUR_UI::instance()->tooltips().set_tip (mouse_note_button, _("Edit MIDI Notes"));
mouse_move_button.unset_flags (CAN_FOCUS);
mouse_select_button.unset_flags (CAN_FOCUS);
mouse_zoom_button.unset_flags (CAN_FOCUS);
mouse_timefx_button.unset_flags (CAN_FOCUS);
mouse_audition_button.unset_flags (CAN_FOCUS);
+ mouse_note_button.unset_flags (CAN_FOCUS);
mouse_select_button.signal_toggled().connect (bind (mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseRange));
mouse_select_button.signal_button_release_event().connect (mem_fun(*this, &Editor::mouse_select_button_release));
mouse_zoom_button.signal_toggled().connect (bind (mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseZoom));
mouse_timefx_button.signal_toggled().connect (bind (mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseTimeFX));
mouse_audition_button.signal_toggled().connect (bind (mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseAudition));
+ mouse_note_button.signal_toggled().connect (bind (mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseNote));
// mouse_move_button.set_active (true);
void
Editor::show_verbose_canvas_cursor ()
{
- verbose_canvas_cursor->raise_to_top();
- verbose_canvas_cursor->show();
+ verbose_canvas_cursor->raise_to_top();
+ verbose_canvas_cursor->show();
verbose_cursor_visible = true;
}
void
Editor::hide_verbose_canvas_cursor ()
{
- verbose_canvas_cursor->hide();
+ verbose_canvas_cursor->hide();
verbose_cursor_visible = false;
}