diff options
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r-- | gtk2_ardour/editor.cc | 82 |
1 files changed, 81 insertions, 1 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 7da62d743f..952e5b098a 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -368,6 +368,7 @@ Editor::Editor () build_cursors (); setup_toolbar (); + setup_midi_toolbar (); edit_cursor_clock.ValueChanged.connect (mem_fun(*this, &Editor::edit_cursor_clock_changed)); @@ -667,7 +668,8 @@ 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, true, true); + 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); @@ -2575,6 +2577,84 @@ Editor::setup_toolbar () toolbar_frame.add (toolbar_base); } + +void +Editor::setup_midi_toolbar () +{ + string pixmap_path; + + /* Mode Buttons (tool selection) */ + + vector<ToggleButton *> midi_tool_buttons; + + midi_tool_select_button.add (*(manage (new Image (::get_icon("midi_tool_select"))))); + midi_tool_select_button.set_relief(Gtk::RELIEF_NONE); + midi_tool_buttons.push_back (&midi_tool_select_button); + 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); + midi_tool_erase_button.add (*(manage (new Image (::get_icon("midi_tool_erase"))))); + midi_tool_erase_button.set_relief(Gtk::RELIEF_NONE); + midi_tool_buttons.push_back (&midi_tool_erase_button); + + midi_tool_select_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(4); + midi_tool_button_box.set_spacing(1); + midi_tool_button_box.pack_start(midi_tool_select_button, true, true); + midi_tool_button_box.pack_start(midi_tool_pencil_button, true, true); + midi_tool_button_box.pack_start(midi_tool_erase_button, true, true); + midi_tool_button_box.set_homogeneous(true); + + midi_tool_select_button.set_name ("MouseModeButton"); + midi_tool_pencil_button.set_name ("MouseModeButton"); + midi_tool_erase_button.set_name ("MouseModeButton"); + + ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_select_button, _("Select/Move Notes")); + ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_pencil_button, _("Add/Move/Stretch Notes")); + ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_erase_button, _("Erase Notes")); + + midi_tool_select_button.unset_flags (CAN_FOCUS); + midi_tool_pencil_button.unset_flags (CAN_FOCUS); + midi_tool_erase_button.unset_flags (CAN_FOCUS); + + + /* Pack everything in... */ + + midi_tools_tearoff = 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_toolbar_hbox.set_spacing (10); + midi_toolbar_hbox.set_border_width (1); + + midi_toolbar_hbox.pack_start (*midi_tools_tearoff, false, true); + + 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); +} + int Editor::convert_drop_to_paths (vector<ustring>& paths, const RefPtr<Gdk::DragContext>& context, |