diff options
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r-- | gtk2_ardour/editor.cc | 218 |
1 files changed, 54 insertions, 164 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index f1da5c6dcf..c1ee69ef2d 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -211,50 +211,47 @@ show_me_the_size (Requisition* r, const char* what) } Editor::Editor () - : /* time display buttons */ - - minsec_label (_("Mins:Secs")), - bbt_label (_("Bars:Beats")), - smpte_label (_("Timecode")), - frame_label (_("Samples")), - tempo_label (_("Tempo")), - meter_label (_("Meter")), - mark_label (_("Location Markers")), - range_mark_label (_("Range Markers")), - transport_mark_label (_("Loop/Punch Ranges")), - cd_mark_label (_("CD Markers")), - edit_packer (4, 4, true), + : minsec_label (_("Mins:Secs")) + , bbt_label (_("Bars:Beats")) + , smpte_label (_("Timecode")) + , frame_label (_("Samples")) + , tempo_label (_("Tempo")) + , meter_label (_("Meter")) + , mark_label (_("Location Markers")) + , range_mark_label (_("Range Markers")) + , transport_mark_label (_("Loop/Punch Ranges")) + , cd_mark_label (_("CD Markers")) + , edit_packer (4, 4, true) /* the values here don't matter: layout widgets reset them as needed. */ - - vertical_adjustment (0.0, 0.0, 10.0, 400.0), - horizontal_adjustment (0.0, 0.0, 20.0, 1200.0), - + + , vertical_adjustment (0.0, 0.0, 10.0, 400.0) + , horizontal_adjustment (0.0, 0.0, 20.0, 1200.0) + /* tool bar related */ - edit_point_clock (X_("editpoint"), false, X_("EditPointClock"), true), - zoom_range_clock (X_("zoomrange"), false, X_("ZoomRangeClock"), true, true), + , edit_point_clock (X_("editpoint"), false, X_("EditPointClock"), true) + , zoom_range_clock (X_("zoomrange"), false, X_("ZoomRangeClock"), true, true) - toolbar_selection_clock_table (2,3), + , toolbar_selection_clock_table (2,3) + + , automation_mode_button (_("mode")) + , global_automation_button (_("automation")) + + , midi_panic_button (_("Panic")) - automation_mode_button (_("mode")), - global_automation_button (_("automation")), - - midi_panic_button (_("Panic")), - midi_tools_tearoff (0), - #ifdef WITH_CMT - image_socket_listener(0), + , image_socket_listener(0) #endif - + /* nudge */ - - nudge_clock (X_("nudge"), false, X_("NudgeClock"), true, true), - meters_running(false), - _pending_locate_request (false) + + , nudge_clock (X_("nudge"), false, X_("NudgeClock"), true, true) + , meters_running(false) + , _pending_locate_request (false) { constructed = false; @@ -328,8 +325,6 @@ Editor::Editor () region_edit_menu_split_item = 0; temp_location = 0; leftmost_frame = 0; - ignore_mouse_mode_toggle = false; - ignore_midi_edit_mode_toggle = false; current_stepping_trackview = 0; entered_track = 0; entered_regionview = 0; @@ -363,9 +358,9 @@ Editor::Editor () location_loop_color = ARDOUR_UI::config()->canvasvar_LocationLoop.get(); location_punch_color = ARDOUR_UI::config()->canvasvar_LocationPunch.get(); - set_midi_edit_mode (MidiEditPencil, true); _edit_point = EditAtMouse; - set_mouse_mode (MouseObject, true); + _internal_editing = false; + current_canvas_cursor = 0; frames_per_unit = 2048; /* too early to use reset_zoom () */ reset_hscrollbar_stepping (); @@ -589,7 +584,6 @@ Editor::Editor () edit_pane.signal_size_allocate().connect (bind (mem_fun(*this, &Editor::pane_allocation_handler), static_cast<Paned*> (&edit_pane))); top_hbox.pack_start (toolbar_frame, false, true); - top_hbox.pack_start (midi_toolbar_frame, false, true); HBox *hbox = manage (new HBox); hbox->pack_start (edit_pane, true, true); @@ -616,6 +610,7 @@ Editor::Editor () snap_mode = SnapOff; set_snap_mode (snap_mode); set_edit_point_preference (EditAtMouse, true); + set_mouse_mode (MouseObject, true); XMLNode* node = ARDOUR_UI::instance()->editor_settings(); set_state (*node); @@ -2785,36 +2780,13 @@ Editor::setup_toolbar () /* Mode Buttons (tool selection) */ - vector<ToggleButton *> mouse_mode_buttons; - - mouse_move_button.add (*(manage (new Image (::get_icon("tool_object"))))); mouse_move_button.set_relief(Gtk::RELIEF_NONE); - mouse_mode_buttons.push_back (&mouse_move_button); - - if (!Profile->get_sae()) { - mouse_select_button.add (*(manage (new Image (get_xpm("tool_range.xpm"))))); - mouse_select_button.set_relief(Gtk::RELIEF_NONE); - mouse_mode_buttons.push_back (&mouse_select_button); - - mouse_gain_button.add (*(manage (new Image (::get_icon("tool_gain"))))); - mouse_gain_button.set_relief(Gtk::RELIEF_NONE); - mouse_mode_buttons.push_back (&mouse_gain_button); - } - - mouse_zoom_button.add (*(manage (new Image (::get_icon("tool_zoom"))))); + mouse_select_button.set_relief(Gtk::RELIEF_NONE); + mouse_gain_button.set_relief(Gtk::RELIEF_NONE); mouse_zoom_button.set_relief(Gtk::RELIEF_NONE); - mouse_mode_buttons.push_back (&mouse_zoom_button); - mouse_timefx_button.add (*(manage (new Image (::get_icon("tool_stretch"))))); mouse_timefx_button.set_relief(Gtk::RELIEF_NONE); - 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); + // internal_edit_button.set_relief(Gtk::RELIEF_NONE); HBox* mode_box = manage(new HBox); mode_box->set_border_width (2); @@ -2830,7 +2802,7 @@ Editor::setup_toolbar () } 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.pack_start(internal_edit_button, true, true); mouse_mode_button_box.set_homogeneous(true); vector<string> edit_mode_strings; @@ -2863,21 +2835,21 @@ Editor::setup_toolbar () mouse_mode_tearoff->Visible.connect (bind (mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox), &mouse_mode_tearoff->tearoff_window(), 1)); + mouse_move_button.set_mode (false); + mouse_select_button.set_mode (false); + mouse_gain_button.set_mode (false); + mouse_zoom_button.set_mode (false); + mouse_timefx_button.set_mode (false); + mouse_audition_button.set_mode (false); + mouse_move_button.set_name ("MouseModeButton"); mouse_select_button.set_name ("MouseModeButton"); mouse_gain_button.set_name ("MouseModeButton"); 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_gain_button, _("Draw Gain Automation")); - 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")); + internal_edit_button.set_name ("MouseModeButton"); mouse_move_button.unset_flags (CAN_FOCUS); mouse_select_button.unset_flags (CAN_FOCUS); @@ -2885,20 +2857,7 @@ Editor::setup_toolbar () 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_move_button.signal_toggled().connect (bind (mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseObject)); - mouse_gain_button.signal_toggled().connect (bind (mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseGain)); - 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); - + internal_edit_button.unset_flags (CAN_FOCUS); /* Zoom */ @@ -3000,11 +2959,10 @@ Editor::setup_toolbar () toolbar_hbox.pack_start (*mouse_mode_tearoff, false, false); toolbar_hbox.pack_start (*tools_tearoff, false, false); - hbox->pack_start (snap_box, false, false); - // hbox->pack_start (zoom_box, false, false); hbox->pack_start (*nudge_box, false, false); + hbox->pack_start (panic_box, false, false); hbox->show_all (); @@ -3027,12 +2985,7 @@ Editor::midi_panic_button_pressed () void Editor::setup_midi_toolbar () { - string pixmap_path; - - /* Mode Buttons (tool selection) */ - - vector<ToggleButton *> midi_tool_buttons; - +#if 0 midi_tool_pencil_button.add (*(manage (new Image (::get_icon("midi_tool_pencil"))))); midi_tool_pencil_button.set_relief(Gtk::RELIEF_NONE); midi_tool_buttons.push_back (&midi_tool_pencil_button); @@ -3046,42 +2999,11 @@ Editor::setup_midi_toolbar () midi_tool_erase_button.set_relief(Gtk::RELIEF_NONE); midi_tool_buttons.push_back (&midi_tool_erase_button); - midi_tool_pencil_button.set_active(true); - - midi_tool_button_set = new GroupedButtons (midi_tool_buttons); - - midi_tool_button_box.set_border_width (2); - midi_tool_button_box.set_spacing(1); - midi_tool_button_box.pack_start(midi_tool_pencil_button, true, true); - midi_tool_button_box.pack_start(midi_tool_select_button, true, true); - midi_tool_button_box.pack_start(midi_tool_resize_button, true, true); - midi_tool_button_box.pack_start(midi_tool_erase_button , true, true); - midi_tool_button_box.set_homogeneous(true); - - midi_tool_pencil_button.set_name ("MouseModeButton"); - midi_tool_select_button.set_name ("MouseModeButton"); - midi_tool_resize_button.set_name ("MouseModeButton"); - midi_tool_erase_button .set_name ("MouseModeButton"); - ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_pencil_button, _("Add/Move/Stretch Notes")); ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_select_button, _("Select/Move Notes")); ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_resize_button, _("Resize Notes")); ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_erase_button, _("Erase Notes")); - - midi_tool_pencil_button.unset_flags (CAN_FOCUS); - midi_tool_select_button.unset_flags (CAN_FOCUS); - midi_tool_resize_button.unset_flags (CAN_FOCUS); - midi_tool_erase_button.unset_flags (CAN_FOCUS); - - midi_tool_pencil_button.signal_toggled().connect (bind (mem_fun(*this, - &Editor::midi_edit_mode_toggled), Editing::MidiEditPencil)); - midi_tool_select_button.signal_toggled().connect (bind (mem_fun(*this, - &Editor::midi_edit_mode_toggled), Editing::MidiEditSelect)); - midi_tool_resize_button.signal_toggled().connect (bind (mem_fun(*this, - &Editor::midi_edit_mode_toggled), Editing::MidiEditResize)); - midi_tool_erase_button.signal_toggled().connect (bind (mem_fun(*this, - &Editor::midi_edit_mode_toggled), Editing::MidiEditErase)); - +#endif /* Midi sound notes */ midi_sound_notes.add (*(manage (new Image (::get_icon("midi_sound_notes"))))); @@ -3091,46 +3013,11 @@ Editor::setup_midi_toolbar () /* Panic */ - HBox* panic_box = manage (new HBox); midi_panic_button.set_name("MidiPanicButton"); - midi_panic_button.signal_pressed().connect ( - mem_fun(this, &Editor::midi_panic_button_pressed)); - panic_box->pack_start (midi_sound_notes , true, true); - panic_box->pack_start (midi_panic_button, true, true); - - /* Pack everything in... */ - - midi_tools_tearoff = manage (new TearOff (midi_tool_button_box)); - midi_tools_tearoff->set_name ("MouseModeBase"); - - /* - midi_tools_tearoff->Detach.connect (bind (mem_fun(*this, &Editor::detach_tearoff), static_cast<Box*>(&midi_toolbar_hbox), - &midi_tools_tearoff->tearoff_window())); - midi_tools_tearoff->Attach.connect (bind (mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&midi_toolbar_hbox), - &midi_tools_tearoff->tearoff_window(), 0)); - midi_tools_tearoff->Hidden.connect (bind (mem_fun(*this, &Editor::detach_tearoff), static_cast<Box*>(&midi_toolbar_hbox), - &midi_tools_tearoff->tearoff_window())); - midi_tools_tearoff->Visible.connect (bind (mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&midi_toolbar_hbox), - &midi_tools_tearoff->tearoff_window(), 0)); - */ + midi_panic_button.signal_pressed().connect (mem_fun(this, &Editor::midi_panic_button_pressed)); - midi_toolbar_hbox.set_spacing (10); - midi_toolbar_hbox.set_border_width (1); - - midi_toolbar_hbox.pack_start (*midi_tools_tearoff, false, true); - - midi_toolbar_hbox.pack_start(*panic_box, false, true, 4); - - midi_tool_button_box.show_all (); - midi_toolbar_hbox.show_all(); - midi_tools_tearoff->show_all(); - - midi_toolbar_base.set_name ("ToolBarBase"); - midi_toolbar_base.add (midi_toolbar_hbox); - - midi_toolbar_frame.set_shadow_type (SHADOW_OUT); - midi_toolbar_frame.set_name ("BaseFrame"); - midi_toolbar_frame.add (midi_toolbar_base); + panic_box.pack_start (midi_sound_notes , true, true); + panic_box.pack_start (midi_panic_button, true, true); } int @@ -3812,6 +3699,8 @@ Editor::pane_allocation_handler (Allocation &alloc, Paned* which) void Editor::detach_tearoff (Box* /*b*/, Window* /*w*/) { + cerr << "remove tearoff\n"; + if (tools_tearoff->torn_off() && mouse_mode_tearoff->torn_off()) { top_hbox.remove (toolbar_frame); @@ -3821,6 +3710,7 @@ Editor::detach_tearoff (Box* /*b*/, Window* /*w*/) void Editor::reattach_tearoff (Box* /*b*/, Window* /*w*/, int32_t /*n*/) { + cerr << "reattach tearoff\n"; if (toolbar_frame.get_parent() == 0) { top_hbox.pack_end (toolbar_frame); } |